home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / filelist / filelist.h < prev    next >
C/C++ Source or Header  |  1991-11-13  |  11KB  |  340 lines

  1. //---------------------------------------------------------------------------
  2. // FileList.h
  3. //---------------------------------------------------------------------------
  4. #define LINE_SIZE                40
  5. #define NUMBER_LINES            80
  6. #define BUFFER_SIZE             (LINE_SIZE * NUMBER_LINES)
  7.  
  8. //---------------------------------------------------------------------------
  9. // Helpful Macros
  10. //---------------------------------------------------------------------------
  11. #define OFFSETIN( struc, field )  ( (USHORT)&( ((struc *)0)->field ) )
  12.  
  13. //---------------------------------------------------------------------------
  14. // Resource ID's
  15. //---------------------------------------------------------------------------
  16. // Toolbox bitmap resource IDs numbers must be consecutive from N to N+5
  17. //---------------------------------------------------------------------------
  18. #define IDBMP_FILELIST              8000
  19. #define IDBMP_FILELISTDOWN          8001
  20. #define IDBMP_FILELISTMONO          8003
  21. #define IDBMP_FILELISTMONODOWN      8004
  22. #define IDBMP_FILELISTEGA           8006
  23. #define IDBMP_FILELISTEGADOWN       8007
  24.  
  25. //---------------------------------------------------------------------------
  26. // Other constants
  27. //---------------------------------------------------------------------------
  28. #define ARRMAX                      100
  29. #define COLMAX                         80
  30. #define FILENAME_LEN                255
  31.  
  32. //---------------------------------------------------------------------------
  33. // FILELIST control data and structs
  34. //---------------------------------------------------------------------------
  35. typedef struct tagList {
  36.  
  37.     // PROPERTIES
  38.     LONG        lBackColorGray;
  39.     LONG        lForeColorGray;
  40.     SHORT       nMaxSelect;
  41.     HWND        hWnd;
  42.     HSZ         hFileName;
  43.     SHORT        nLineSize;
  44.     HSZ            hVerifyText;
  45.     HSZ            hLocateText;
  46.     HSZ         hListArray  [1];
  47.     int         nListGray   [ARRMAX];
  48.     int         nListSelect [ARRMAX];
  49.     int            nDisplayCol [COLMAX];
  50.     int            nOutputCol    [COLMAX];
  51.     int            nInputCol    [COLMAX];
  52.  
  53.     // NO PROPERTIES
  54.     HFONT       hFont;
  55.     int         nStartLine;
  56.     int         nEndLine;
  57.     HANDLE        hListBuffer;
  58.     LPSTR       lpListBuffer;
  59.     int            nCurrPos;
  60.     char         szSearchString [LINE_SIZE + 1];
  61.     int          nSearchStringLen;
  62.  
  63.  
  64. } FILELIST;
  65. typedef FILELIST FAR * PFILELIST;
  66.  
  67. #define FILELISTDEREF(hctl)   ((PFILELIST) VBDerefControl (hctl))
  68.  
  69. //---------------------------------------------------------------------------
  70. // Control Procedure
  71. //---------------------------------------------------------------------------
  72. LONG _export FileListCtlProc( HCTL, HWND, USHORT, USHORT, LONG );
  73.  
  74.  
  75. #ifndef RC_INVOKED
  76. //---------------------------------------------------------------------------
  77. // Property filelist
  78. //---------------------------------------------------------------------------
  79. // Define the consecutive indicies for the properties
  80. //---------------------------------------------------------------------------
  81. #define IPROP_FILELIST_NAME               0x0000
  82. #define IPROP_FILELIST_INDEX              0x0001
  83. #define IPROP_FILELIST_PARENT             0x0002
  84. #define IPROP_FILELIST_BACKCOLOR          0x0003
  85. #define IPROP_FILELIST_FORECOLOR          0x0004
  86. #define IPROP_FILELIST_LEFT               0x0005
  87. #define IPROP_FILELIST_TOP                0x0006
  88. #define IPROP_FILELIST_WIDTH              0x0007
  89.  
  90. #define IPROP_FILELIST_HEIGHT             0x0008
  91. #define IPROP_FILELIST_FONTNAME           0x0009
  92. #define IPROP_FILELIST_FONTSIZE           0x000A
  93. #define IPROP_FILELIST_FONTBOLD           0x000B
  94. #define IPROP_FILELIST_FONTITALIC         0x000C
  95. #define IPROP_FILELIST_FONTSTRIKE         0x000D
  96. #define IPROP_FILELIST_FONTUNDER          0x000E
  97. #define IPROP_FILELIST_TABINDEX           0x000F
  98.  
  99. #define IPROP_FILELIST_TABSTOP            0x0010
  100. #define IPROP_FILELIST_DRAGMODE           0x0011
  101. #define IPROP_FILELIST_DRAGICON           0x0012
  102. #define IPROP_FILELIST_ENABLED            0x0013
  103. #define IPROP_FILELIST_VISIBLE            0x0014
  104. #define IPROP_FILELIST_TAG                0x0015
  105. #define IPROP_FILELIST_MOUSEPOINTER       0x0016
  106. #define IPROP_FILELIST_BACKCOLORGRAY    0x0017
  107.  
  108. #define IPROP_FILELIST_FORECOLORGRAY    0x0018
  109. #define IPROP_FILELIST_LISTARRAY        0x0019
  110. #define IPROP_FILELIST_LISTGRAY         0x001A
  111. #define IPROP_FILELIST_LISTSELECT       0x001B
  112. #define IPROP_FILELIST_MAXSELECT        0x001C
  113. #define IPROP_FILELIST_HWND             0x001D
  114. #define IPROP_FILELIST_FILENAME         0x001E
  115. #define IPROP_FILELIST_LINESIZE         0x001F
  116. #define IPROP_FILELIST_DISPLAYCOL       0x0020
  117. #define IPROP_FILELIST_OUTPUTCOL        0x0021
  118. #define IPROP_FILELIST_INPUTCOL         0x0022
  119. #define IPROP_FILELIST_VERIFYTEXT       0x0023
  120. #define IPROP_FILELIST_LOCATETEXT       0x0024
  121.  
  122. #ifdef CTL_DATA
  123.  
  124. PROPINFO CTL_DATA propBackColorGray =
  125. {
  126.    "BackColorGray",
  127.    DT_COLOR | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  128.    OFFSETIN (FILELIST, lBackColorGray), 0
  129. };
  130.  
  131. PROPINFO CTL_DATA propForeColorGray =
  132. {
  133.    "ForeColorGray",
  134.    DT_COLOR | PF_fGetData  | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  135.    OFFSETIN (FILELIST, lForeColorGray), 0
  136. };
  137.  
  138. PROPINFO CTL_DATA propListArray =
  139. {
  140.    "ListArray",
  141.    DT_HSZ             | PF_fGetMsg  | PF_fSetMsg    |
  142.    PF_fNoRuntimeW    | PF_fNoShow  | PF_fPropArray,
  143.    OFFSETIN (FILELIST, hListArray), 0
  144. };
  145.  
  146. PROPINFO CTL_DATA propListGray =
  147. {
  148.    "ListGray",
  149.    DT_SHORT |  PF_fGetMsg  | PF_fSetMsg    |
  150.                PF_fNoShow  | PF_fPropArray,
  151.    OFFSETIN (FILELIST, nListGray), 0
  152. };
  153.  
  154. PROPINFO CTL_DATA propListSelect =
  155. {
  156.    "ListSelect",
  157.    DT_SHORT |  PF_fGetMsg  | PF_fSetMsg    |
  158.                PF_fNoShow  | PF_fPropArray,
  159.    OFFSETIN (FILELIST, nListSelect), 0
  160. };
  161.  
  162. PROPINFO CTL_DATA propListDisplayCol =
  163. {
  164.    "DisplayCol",
  165.    DT_SHORT |  PF_fGetMsg  | PF_fSetMsg    |
  166.                PF_fNoShow  | PF_fPropArray,
  167.    OFFSETIN (FILELIST, nDisplayCol), 0
  168. };
  169.  
  170. PROPINFO CTL_DATA propListOutputCol =
  171. {
  172.    "OutputCol",
  173.    DT_SHORT |  PF_fGetMsg  | PF_fSetMsg    |
  174.                PF_fNoShow  | PF_fPropArray,
  175.    OFFSETIN (FILELIST, nOutputCol), 0
  176. };
  177.  
  178. PROPINFO CTL_DATA propListInputCol =
  179. {
  180.    "InputCol",
  181.    DT_SHORT |  PF_fGetMsg  | PF_fSetMsg    |
  182.                PF_fNoShow  | PF_fPropArray,
  183.    OFFSETIN (FILELIST, nInputCol), 0
  184. };
  185.  
  186. PROPINFO CTL_DATA propMaxSelect =
  187. {
  188.    "MaxSelect",
  189.    DT_SHORT | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  190.    OFFSETIN (FILELIST, nMaxSelect), 0
  191. };
  192.  
  193. PROPINFO CTL_DATA prophWnd =
  194. {
  195.    "hWnd",
  196.    DT_SHORT   | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData | PF_fNoShow,
  197.    OFFSETIN (FILELIST, hWnd), 0
  198. };
  199.  
  200. PROPINFO CTL_DATA propFileName =
  201. {
  202.    "FileName",
  203.    DT_HSZ  | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  204.    OFFSETIN (FILELIST, hFileName), 0
  205. };
  206.  
  207. PROPINFO CTL_DATA propVerifyText =
  208. {
  209.    "VerifyText",
  210.    DT_HSZ  | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  211.    OFFSETIN (FILELIST, hVerifyText), 0
  212. };
  213.  
  214. PROPINFO CTL_DATA propLocateText =
  215. {
  216.    "LocateText",
  217.    DT_HSZ  | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  218.    OFFSETIN (FILELIST, hLocateText), 0
  219. };
  220.  
  221.  
  222. PROPINFO CTL_DATA propLineSize =
  223. {
  224.    "LineSize",
  225.    DT_SHORT   | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  226.    OFFSETIN (FILELIST, nLineSize), 0
  227. };
  228.  
  229. PPROPINFO CTL_DATA propfilelistList[] = {
  230.  
  231.     PPROPINFO_STD_CTLNAME,
  232.     PPROPINFO_STD_INDEX,
  233.     PPROPINFO_STD_PARENT,
  234.     PPROPINFO_STD_BACKCOLOR,
  235.     PPROPINFO_STD_FORECOLOR,
  236.     PPROPINFO_STD_LEFT,
  237.     PPROPINFO_STD_TOP,
  238.     PPROPINFO_STD_WIDTH,
  239.     PPROPINFO_STD_HEIGHT,
  240.     PPROPINFO_STD_FONTNAME,
  241.     PPROPINFO_STD_FONTSIZE,
  242.     PPROPINFO_STD_FONTBOLD,
  243.     PPROPINFO_STD_FONTITALIC,
  244.     PPROPINFO_STD_FONTSTRIKE,
  245.     PPROPINFO_STD_FONTUNDER,
  246.     PPROPINFO_STD_TABINDEX,
  247.     PPROPINFO_STD_TABSTOP,
  248.     PPROPINFO_STD_DRAGMODE,
  249.     PPROPINFO_STD_DRAGICON,
  250.     PPROPINFO_STD_ENABLED,
  251.     PPROPINFO_STD_VISIBLE,
  252.     PPROPINFO_STD_TAG,
  253.     PPROPINFO_STD_MOUSEPOINTER,
  254.     &propBackColorGray,
  255.     &propForeColorGray,
  256.     &propListArray,
  257.     &propListGray,
  258.     &propListSelect,
  259.     &propMaxSelect,
  260.     &prophWnd,
  261.     &propFileName,
  262.     &propLineSize,
  263.